package ar.com.larreta.colegio.client.planesdepagos;

import com.google.gwt.i18n.client.DateTimeFormat;

import ar.com.larreta.colegio.intercambio.client.Obligacion;
import ar.com.larreta.grilla.client.Grilla;
import ar.com.larreta.vista.client.BarraHerramientas;
import ar.com.larreta.vista.client.CajaDeTexto;
import ar.com.larreta.vista.client.CampoFecha;
import ar.com.larreta.vista.client.Estado;
import ar.com.larreta.vista.client.Mensajes;
import ar.com.larreta.vista.client.Ventana;

public class VentanaObligaciones extends Ventana {
	public static final Integer TAMANIO_TEXTO_MENSAJE = 200;

	private CajaDeTexto nombre;
	
	private CajaDeTexto valor;

	private CampoFecha vencimiento;
	
	private Obligacion obligacion;
	
	private Grilla grilla;
	
	public void setObligacion(Obligacion obligacion) {
		this.obligacion = obligacion;
	}

	
	
	public VentanaObligaciones(Grilla grilla) {
		super(Mensajes.getInstancia().get("msg.colegio.obligaciones"), "");
		
		this.grilla = grilla;
		
		barraHerramientas = new BarraHerramientas(this, getAnchoVentana(), 25);
		add(barraHerramientas);
		
		setHeight(122);
		
		setModal(Boolean.TRUE);
		
		nombre = new CajaDeTexto(Mensajes.getInstancia().get("msg.colegio.obligaciones.nombre"), null);
		nombre.getCampoTexto().setWidth(TAMANIO_TEXTO_MENSAJE);
		nombre.getCampoTexto().setAllowBlank(Boolean.FALSE);
		registrarCampo(nombre.getCampoTexto());
		add(nombre.getHorizontal());

		valor = new CajaDeTexto(Mensajes.getInstancia().get("msg.colegio.obligaciones.valor"), null);
		valor.getCampoTexto().setWidth(TAMANIO_TEXTO_MENSAJE);
		valor.getCampoTexto().setAllowBlank(Boolean.FALSE);
		registrarCampo(valor.getCampoTexto());
		add(valor.getHorizontal());
		
		vencimiento = new CampoFecha(Mensajes.getInstancia().get("msg.colegio.obligaciones.vencimiento"), null);
		vencimiento.getCampoTexto().setWidth(TAMANIO_TEXTO_MENSAJE);
		vencimiento.getCampoTexto().setAllowBlank(Boolean.FALSE);
		vencimiento.getCampoTexto().getPropertyEditor().setFormat(DateTimeFormat.getFormat("dd/MM/yyyy"));
		registrarCampo(vencimiento.getCampoTexto());
		add(vencimiento.getHorizontal());		
		
	}
	
	public void cancelando(){
		cambiarEstadoACreacion();
		this.hide();
	}

	public void confirmando(){
		if (esValido()) {
			this.mask();
			if (estado.equals(Estado.CREACION)){
				obligacion = new Obligacion();
			}
			
			obligacion.setNombre((String)nombre.getCampoTexto().getValue());
			obligacion.setValor(new Double((String)valor.getCampoTexto().getValue()));
			obligacion.setVencimiento(vencimiento.getCampoTexto().getValue());
			
			if (estado.equals(Estado.CREACION)){
				grilla.agregarDato(obligacion);
			}

			grilla.load();
			this.unmask();
			this.hide();
		}
	}


	public CajaDeTexto getNombre() {
		return nombre;
	}



	public CampoFecha getVencimiento() {
		return vencimiento;
	}

	public CajaDeTexto getValor() {
		return valor;
	}

}
